home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / graphics / gnuplot / contrib / woo / amesmod.dif < prev    next >
Text File  |  1992-05-20  |  47KB  |  1,621 lines

  1. diff -rc gnuplot/EPSView.h gnuplot3_26/EPSView.h
  2. *** gnuplot/EPSView.h    Wed Mar 25 07:59:08 1992
  3. --- gnuplot3_26/EPSView.h    Tue Mar 24 22:45:18 1992
  4. ***************
  5. *** 1,9 ****
  6.   /*
  7. !  * $Id: EPSView.h,v 3.24 1992/02/29 16:29:37 woo Exp woo $
  8. !  *
  9. !  * $Log: EPSView.h,v $
  10. !  * Revision 3.24  1992/02/29  16:29:37  woo
  11. !  * gnuplot3.2, beta 4
  12.    *
  13.    */
  14.   
  15. --- 1,5 ----
  16.   /*
  17. !  * $Id: EPSView.h,v 3.26 92/03/24 22:35:57 woo Exp Locker: woo $
  18.    *
  19.    */
  20.   
  21. diff -rc gnuplot/EPSView.m gnuplot3_26/EPSView.m
  22. *** gnuplot/EPSView.m    Wed Mar 25 07:59:08 1992
  23. --- gnuplot3_26/EPSView.m    Tue Mar 24 22:45:17 1992
  24. ***************
  25. *** 1,16 ****
  26.   #ifndef lint
  27. ! static char *RCSid = "$Id: EPSView.m,v 3.24 1992/02/29 16:23:41 woo Exp woo $";
  28.   #endif
  29.   
  30. - /*
  31. -  * $Log: EPSView.m,v $
  32. - # Revision 3.24  1992/02/29  16:23:41  woo
  33. - # gnuplot3.2, beta 4
  34. - #
  35. -  * Revision 3.23  1992/02/21  20:18:16  woo
  36. -  * gnuplot3.2, beta 3
  37. -  *
  38. -  */
  39.   
  40.   #import "EPSView.h"
  41.   
  42. --- 1,7 ----
  43.   #ifndef lint
  44. ! static char *RCSid = "$Id: EPSView.m,v 3.26 92/03/24 22:35:56 woo Exp Locker: woo $";
  45.   #endif
  46.   
  47.   
  48.   #import "EPSView.h"
  49.   
  50. diff -rc gnuplot/EpsViewer.h gnuplot3_26/EpsViewer.h
  51. *** gnuplot/EpsViewer.h    Wed Mar 25 07:59:08 1992
  52. --- gnuplot3_26/EpsViewer.h    Tue Mar 24 22:45:20 1992
  53. ***************
  54. *** 1,9 ****
  55.   /*
  56. !  * $Id: EpsViewer.h,v 3.24 1992/02/29 16:27:40 woo Exp woo $
  57. !  *
  58. !  * $Log: EpsViewer.h,v $
  59. !  * Revision 3.24  1992/02/29  16:27:40  woo
  60. !  * gnuplot3.2, beta 4
  61.    *
  62.    */
  63.   
  64. --- 1,5 ----
  65.   /*
  66. !  * $Id: EpsViewer.h,v 3.26 92/03/24 22:35:59 woo Exp Locker: woo $
  67.    *
  68.    */
  69.   
  70. diff -rc gnuplot/EpsViewer.m gnuplot3_26/EpsViewer.m
  71. *** gnuplot/EpsViewer.m    Wed Mar 25 07:59:09 1992
  72. --- gnuplot3_26/EpsViewer.m    Tue Mar 24 22:45:19 1992
  73. ***************
  74. *** 1,13 ****
  75.   #ifndef lint
  76. ! static char *RCSid = "$Id: EpsViewer.m,v 3.24 1992/02/29 16:27:40 woo Exp woo $";
  77.   #endif
  78.   
  79. - /*
  80. -  * $Log: EpsViewer.m,v $
  81. - # Revision 3.24  1992/02/29  16:27:40  woo
  82. - # gnuplot3.2, beta 4
  83. - #
  84. -  */
  85.   
  86.   #import "EpsViewer.h"
  87.   #import "EPSView.h"
  88. --- 1,7 ----
  89.   #ifndef lint
  90. ! static char *RCSid = "$Id: EpsViewer.m,v 3.26 92/03/24 22:35:58 woo Exp Locker: woo $";
  91.   #endif
  92.   
  93.   
  94.   #import "EpsViewer.h"
  95.   #import "EPSView.h"
  96. Only in gnuplot3_26: Makefile
  97. Only in gnuplot3_26: RCS
  98. diff -rc gnuplot/README.3p2 gnuplot3_26/README.3p2
  99. *** gnuplot/README.3p2    Wed Mar 25 07:59:07 1992
  100. --- gnuplot3_26/README.3p2    Tue Mar 24 22:06:46 1992
  101. ***************
  102. *** 1,6 ****
  103. ! This is the beta5 version of patch2 to gnuplot 3.1, anonymous ftpable from
  104. !     ames.arc.nasa.gov:~ftp/pub/gnuplot/gnuplot3p2b5.shar.Z
  105. !     ames.arc.nasa.gov:~ftp/pub/gnuplot/gnuplot3p2b5.tar.Z
  106.   
  107.   This is NOT official release.  
  108.   
  109. --- 1,6 ----
  110. ! This is the beta6 version of patch2 to gnuplot 3.1, anonymous ftpable from
  111. !     ames.arc.nasa.gov:~ftp/pub/gnuplot/gnuplot3p2b6.shar.Z
  112. !     ames.arc.nasa.gov:~ftp/pub/gnuplot/gnuplot3p2b6.tar.Z
  113.   
  114.   This is NOT official release.  
  115.   
  116. ***************
  117. *** 30,36 ****
  118.     Name: Gershon Elber
  119.     Email: gershon@gr.utah.edu
  120.   
  121. ! * Subject: New generic gnuplot_x11.c 
  122.     Name: Ed Kubatis
  123.     Email: ejk@ux2.ncsa.uiuc.edu
  124.   
  125. --- 30,36 ----
  126.     Name: Gershon Elber
  127.     Email: gershon@gr.utah.edu
  128.   
  129. ! * Subject: New generic gnuplot_x11.c & fixes
  130.     Name: Ed Kubatis
  131.     Email: ejk@ux2.ncsa.uiuc.edu
  132.   
  133. Only in gnuplot: beta6.dif
  134. diff -rc gnuplot/command.c gnuplot3_26/command.c
  135. *** gnuplot/command.c    Wed Mar 25 07:59:34 1992
  136. --- gnuplot3_26/command.c    Thu Apr  9 20:59:21 1992
  137. ***************
  138. *** 2,7 ****
  139. --- 2,8 ----
  140.   static char *RCSid = "$Id: command.c,v 3.26 92/03/24 22:34:17 woo Exp Locker: woo $";
  141.   #endif
  142.   
  143.   /* GNUPLOT - command.c */
  144.   /*
  145.    * Copyright (C) 1986, 1987, 1990, 1991, 1992   Thomas Williams, Colin Kelley
  146. ***************
  147. *** 610,616 ****
  148.       }
  149.   }
  150.   
  151.   get_data(this_plot)
  152.   struct curve_points *this_plot;
  153.   {
  154. --- 611,617 ----
  155.       }
  156.   }
  157.   
  158. ! #define MAX(X,Y)  ((X > Y) ? X : Y)
  159.   get_data(this_plot)
  160.   struct curve_points *this_plot;
  161.   {
  162. ***************
  163. *** 618,625 ****
  164.   register FILE *fp;
  165.   float x, y;
  166.   float ylow, yhigh;            /* for error bars */
  167. ! float temp;
  168. ! BOOLEAN yfirst;
  169.   char format[MAX_LINE_LEN+1], data_file[MAX_LINE_LEN+1], line[MAX_LINE_LEN+1];
  170.   char *float_format = "%f", *float_skip = "%*f";
  171.   int xcol = 1, ycol = 2, yemin = 3, yemax = 4;
  172. --- 619,627 ----
  173.   register FILE *fp;
  174.   float x, y;
  175.   float ylow, yhigh;            /* for error bars */
  176. ! float temp,temp2;
  177. ! int yfirst = FALSE;            /* changed to reflect permutation */
  178.   char format[MAX_LINE_LEN+1], data_file[MAX_LINE_LEN+1], line[MAX_LINE_LEN+1];
  179.   char *float_format = "%f", *float_skip = "%*f";
  180.   int xcol = 1, ycol = 2, yemin = 3, yemax = 4;
  181. ***************
  182. *** 644,649 ****
  183. --- 646,652 ----
  184.       if ((fp = fopen(data_file, "r")) == (FILE *)NULL)
  185.           os_error("can't open data file", c_token);
  186.   
  187.       format[0] = '\0';
  188.       yfirst = FALSE;
  189.       c_token++;    /* skip data file name */
  190. ***************
  191. *** 675,681 ****
  192.                       yemin = -1;
  193.                       yemax = -1;
  194.               }
  195. !             if (xcol > ycol) yfirst = TRUE;
  196.           }
  197.           if (!END_OF_COMMAND && isstring(c_token)) {
  198.               quotel_str(format, c_token);
  199. --- 678,781 ----
  200.                       yemin = -1;
  201.                       yemax = -1;
  202.               }
  203. !             if ( yemax < 0 || yemax > (MAX(yemin,MAX(xcol,ycol)))) {
  204. !                 
  205. !                 
  206. !                 if ( yemin < 0 || yemin > MAX(xcol,ycol) ) { 
  207. !                     /* original meaning */
  208. !                     if (xcol > ycol) yfirst = TRUE; /* s213 */
  209. !                     
  210. !                 } else {  /* ydelta only, permutation group S3 */
  211. !                     if (xcol < ycol ) { 
  212. !                         if (yemin > xcol ) {
  213. !                             yfirst = 2;        /* s132 */
  214. !                         } else {
  215. !                             yfirst = 3;        /* s231 */
  216. !                         }
  217. !                     } else {
  218. !                         if (yemin > ycol ) {
  219. !                             yfirst = 4;        /* s312 */
  220. !                         } else {
  221. !                             yfirst = 5;        /* s321 */
  222. !                         }
  223. !                     }
  224. !                 }
  225. !             } else if ( yemin > MAX(yemax,MAX(xcol,ycol))) {
  226. !                 /* ylow, yhigh, permutations group S4 */
  227. !                 /* switch yemin and yemax, order not important */
  228. !                 i = yemin;  /* switch yemin & yemax */
  229. !                 yemin = yemax;
  230. !                 yemax = i;
  231. !                 /* now order S4 as above */
  232. !                 if ( yemin > MAX(xcol,ycol) ) { 
  233. !                     if (xcol < ycol) {
  234. !                         yfirst = 6;        /* s1243 */
  235. !                     } else {
  236. !                         yfirst = 7;        /* s2143 */
  237. !                     }
  238. !                 } else {  
  239. !                     if (xcol < ycol ) { 
  240. !                         if (yemin > xcol ) {
  241. !                             yfirst = 8;        /* s1342 */
  242. !                         } else {
  243. !                             yfirst = 9;        /* s2341 */
  244. !                         }
  245. !                     } else {
  246. !                         if (yemin > ycol ) {
  247. !                             yfirst = 10;    /* s3142 */
  248. !                         } else {
  249. !                             yfirst = 11;    /* s3241 */
  250. !                         }
  251. !                     }
  252. !                 }
  253. !             } else if ( ycol > MAX(yemax,MAX(xcol,yemin))) { 
  254. !                 if ( yemax > MAX(xcol,yemin) ) { 
  255. !                     if (xcol < yemin) {
  256. !                         yfirst = 12;    /* s1423 */
  257. !                     } else {
  258. !                         yfirst = 13;    /* s2413 */
  259. !                     }
  260. !                 } else {  
  261. !                     if (xcol < yemin ) { 
  262. !                         if (yemax > xcol ) {
  263. !                             yfirst = 14;    /* s1432 */
  264. !                         } else {
  265. !                             yfirst = 15;    /* s2431 */
  266. !                         }
  267. !                     } else {
  268. !                         if (yemax > yemin ) {
  269. !                             yfirst = 16;    /* s3412 */
  270. !                         } else {
  271. !                             yfirst = 17;    /* s3421 */
  272. !                         }
  273. !                     }
  274. !                 }
  275. !             } else if ( xcol > MAX(yemax,MAX(ycol,yemin))) {
  276. !                 if ( yemax > MAX(ycol,yemin) ) { 
  277. !                     if (ycol < yemin) {
  278. !                         yfirst = 18;    /* s4123 */
  279. !                     } else {
  280. !                         yfirst = 19;    /* s4213 */
  281. !                     }
  282. !                 } else {  
  283. !                     if (ycol < yemin ) { 
  284. !                         if (yemax > ycol ) {
  285. !                             yfirst = 20;    /* s4132 */
  286. !                         } else {
  287. !                             yfirst = 21;    /* s4231 */
  288. !                         }
  289. !                     } else {
  290. !                         if (yemax > yemin ) {
  291. !                             yfirst = 22;    /* s4312 */
  292. !                         } else {
  293. !                             yfirst = 23;    /* s4321 */
  294. !                         }
  295. !                     }
  296. !                 }
  297. !             }
  298.           }
  299.           if (!END_OF_COMMAND && isstring(c_token)) {
  300.               quotel_str(format, c_token);
  301. ***************
  302. *** 682,722 ****
  303.               c_token++;    /* skip format */
  304.           }
  305.       }
  306.       if (strlen(format) == 0) {
  307. !         for(i = 1; i <= ((xcol > ycol) ? xcol : ycol); i++)
  308. !             if ((i == xcol) || (i == ycol))
  309.                   (void) strcat(format,float_format);
  310.               else
  311.                   (void) strcat(format,float_skip);
  312. -         if (yemin > 0) {
  313. -             /* We have error bars - handle them. */
  314. -             yemin -= (xcol > ycol) ? xcol : ycol;
  315. -             yemax -= (xcol > ycol) ? xcol : ycol;
  316. -             if (yemin > yemax && yemax > 0) {
  317. -                 i = yemin;
  318. -                 yemin = yemax;
  319. -                 yemax = i;
  320. -             }
  321. -             if (yemin == yemax)
  322. -                 int_error("Two error bar columns are the same",
  323. -                       NO_CARET);
  324. -             if (yemin <= 0)
  325. -                 int_error("Error bar columns must follow data columns",
  326. -                       NO_CARET);
  327. -             for (i = 1; i < yemin; i++)
  328. -                 (void) strcat(format,float_skip);
  329. -             (void) strcat(format,float_format);
  330. -             if (yemax > 0) {
  331. -                 for (i = 1; i < yemax - yemin; i++)
  332. -                     (void) strcat(format,float_skip);
  333. -                 (void) strcat(format,float_format);
  334. -             }
  335. -         }
  336.       }
  337.   
  338.       l_num = 0;
  339. --- 782,795 ----
  340.               c_token++;    /* skip format */
  341.           }
  342.       }
  343.       if (strlen(format) == 0) {
  344. !         for(i = 1; i <= MAX(xcol,MAX(ycol,MAX(yemin,yemax))) ; i++)
  345. !             /* works because yemin & yemax are -1 */
  346. !             if ((i == xcol) || (i == ycol) || (i == yemin) || (i == yemax))
  347.                   (void) strcat(format,float_format);
  348.               else
  349.                   (void) strcat(format,float_skip);
  350.       }
  351.   
  352.       l_num = 0;
  353. ***************
  354. *** 761,767 ****
  355.                  /* no break; !!! */
  356.               }
  357.               case 2: {
  358. !                if (yfirst) { /* exchange x and y */
  359.                     temp = y;
  360.                     y = x;
  361.                     x = temp;
  362. --- 834,840 ----
  363.                  /* no break; !!! */
  364.               }
  365.               case 2: {
  366. !                if (yfirst == TRUE) { /* exchange x and y */
  367.                     temp = y;
  368.                     y = x;
  369.                     x = temp;
  370. ***************
  371. *** 773,782 ****
  372.                  break;
  373.               }
  374.               case 3: {        /* x, y, ydelta */
  375. !                if (yfirst) { /* exchange x and y */
  376. !                   temp = y;
  377. !                   y = x;
  378. !                   x = temp;
  379.                  }
  380.                  datum++;
  381.   
  382. --- 846,887 ----
  383.                  break;
  384.               }
  385.               case 3: {        /* x, y, ydelta */
  386. !                switch (yfirst) { /* S3 permutation group  */
  387. !                    case 0:
  388. !                     break;
  389. !                    case 1:{    /* s213 */
  390. !                        temp = y;
  391. !                        y = x;
  392. !                        x = temp;
  393. !                        break;
  394. !                    }
  395. !                    case 2:{    /* s132 */
  396. !                        temp = y;
  397. !                        y = ylow;
  398. !                        ylow = temp;
  399. !                        break;
  400. !                    }
  401. !                    case 3:{    /* s231 */
  402. !                        temp = x;
  403. !                        temp2 = y;
  404. !                        y = ylow;
  405. !                        x = temp2;
  406. !                        ylow = temp;
  407. !                        break;
  408. !                    }
  409. !                    case 4:{    /* s312 */
  410. !                        temp = x;
  411. !                        x = ylow;
  412. !                        ylow = y;
  413. !                        y = temp;
  414. !                        break;
  415. !                    }
  416. !                    case 5:{    /* s321 */
  417. !                        temp = x;
  418. !                        x = ylow;
  419. !                        ylow = temp;
  420. !                        break;
  421. !                    }
  422.                  }
  423.                  datum++;
  424.   
  425. ***************
  426. *** 785,797 ****
  427.                  break;
  428.               }
  429.               case 4: {        /* x, y, ylow, yhigh */
  430. !                if (yfirst) { /* exchange x and y */
  431. !                   temp = y;
  432. !                   y = x;
  433. !                   x = temp;
  434.                  }
  435.                  datum++;
  436.                  store2d_point(this_plot, i++, x, y, ylow, yhigh);
  437.                  break;
  438.               }
  439. --- 890,1081 ----
  440.                  break;
  441.               }
  442.               case 4: {        /* x, y, ylow, yhigh */
  443. !                 
  444. !                switch (yfirst) { /* S4 permutation group  */
  445. !                    case 0:
  446. !                     break;
  447. !                    case 1:{    /* s2134 */
  448. !                        temp = y;
  449. !                        y = x;
  450. !                        x = temp;
  451. !                        break;
  452. !                    }
  453. !                    case 2:{    /* s1324 */
  454. !                        temp = y;
  455. !                        y = ylow;
  456. !                        ylow = temp;
  457. !                        break;
  458. !                    }
  459. !                    case 3:{    /* s2314 */
  460. !                        temp = x;
  461. !                        x    = y;
  462. !                        temp2 = ylow;
  463. !                        y    = temp2;
  464. !                        ylow = temp;
  465. !                        break;
  466. !                    }
  467. !                    case 4:{    /* s3124 */
  468. !                        temp = x;
  469. !                        x    = ylow;
  470. !                        temp2 = y;
  471. !                        ylow    = temp2;
  472. !                        y    = temp;
  473. !                        break;
  474. !                    }
  475. !                    case 5:{    /* s3214 */
  476. !                        temp = x;
  477. !                        x    = ylow;
  478. !                        ylow = temp;
  479. !                        break;
  480. !                    }
  481. !                    case 6: { /* s1243 */
  482. !                        temp    = yhigh;
  483. !                        yhigh = ylow;
  484. !                        ylow = temp;
  485. !                        break;
  486. !                    }
  487. !                    case 7:{    /* s2143 */
  488. !                        temp = y;
  489. !                        y    = x;
  490. !                        x    = temp;
  491. !                        temp = yhigh;
  492. !                        yhigh = ylow;
  493. !                        ylow = temp;
  494. !                        break;
  495. !                    }
  496. !                    case 8:{    /* s1342 */
  497. !                        temp = y;
  498. !                        y    = ylow;
  499. !                        temp2 = yhigh;
  500. !                        ylow = temp2;
  501. !                        yhigh = temp;
  502. !                        break;
  503. !                    }
  504. !                    case 9:{    /* s2341 */
  505. !                        temp = x;
  506. !                        x    = y;
  507. !                        temp2 = yhigh;
  508. !                        y    = ylow;
  509. !                        yhigh = temp;    /* use fact order not important */
  510. !                        ylow = temp2;
  511. !                        break;
  512. !                    }
  513. !                    case 10:{    /* s3142 */
  514. !                        temp = x;
  515. !                        x    = ylow;
  516. !                        temp2 = y;
  517. !                        y    = temp;
  518. !                        ylow = yhigh;
  519. !                        yhigh = temp2;    /* use order independence */
  520. !                        break;
  521. !                    }
  522. !                    case 11:{    /* s3241 */
  523. !                        temp = x;
  524. !                        x = yhigh;
  525. !                        yhigh = temp;
  526. !                        break;
  527. !                    }
  528. !                    case 12: { /* s1423 */
  529. !                        temp  = ylow;
  530. !                        temp2 = yhigh;
  531. !                        yhigh = temp;
  532. !                        ylow  = y;
  533. !                        y     = temp2;
  534. !                        break;
  535. !                    }
  536. !                    case 13:{    /* s2413 */
  537. !                        temp = x;
  538. !                        x    = y;
  539. !                        temp2 = ylow;
  540. !                        y    = yhigh;
  541. !                        ylow = temp;
  542. !                        yhigh = temp2;
  543. !                        break;
  544. !                    }
  545. !                    case 14:{    /* s1432 */
  546. !                        temp = y;
  547. !                        y    = yhigh;
  548. !                        yhigh = temp;
  549. !                        break;
  550. !                    }
  551. !                    case 15:{    /* s2431 */
  552. !                        temp = x;
  553. !                        x    = y;
  554. !                        y    = yhigh;
  555. !                        yhigh = temp;    /* use fact order not important */
  556. !                        break;
  557. !                    }
  558. !                    case 16:{    /* s3412 */
  559. !                        temp = x;
  560. !                        x    = ylow;
  561. !                        ylow  = temp;
  562. !                        temp2 =y;
  563. !                        y    = yhigh;
  564. !                        yhigh = temp2;    /* use order independence */
  565. !                        break;
  566. !                    }
  567. !                    case 17:{    /* s3421 */
  568. !                        temp = x;
  569. !                        x    = ylow;
  570. !                        temp2 = yhigh;
  571. !                        yhigh = temp;
  572. !                        temp = y;
  573. !                        y    = temp2;
  574. !                        ylow = temp;
  575. !                        break;
  576. !                    }
  577. !                    case 18: { /* s4123 */
  578. !                        temp = x;
  579. !                        x    = yhigh;
  580. !                        temp2 = y;
  581. !                        y    = temp;
  582. !                        yhigh = ylow;
  583. !                        ylow = temp2;
  584. !                        break;
  585. !                    }
  586. !                    case 19:{    /* s4213 */
  587. !                        temp = x;
  588. !                        x = ylow;
  589. !                        ylow = temp;
  590. !                        break;
  591. !                    }
  592. !                    case 20:{    /* s4132 */
  593. !                        temp = y;
  594. !                        y    = x;
  595. !                        temp2 = yhigh;
  596. !                        yhigh = temp;
  597. !                        x    = temp2;
  598. !                        break;
  599. !                    }
  600. !                    case 21:{    /* s4231 */
  601. !                        temp = x;
  602. !                        x = yhigh;
  603. !                        yhigh = temp;    
  604. !                        break;
  605. !                    }
  606. !                    case 22:{    /* s4312 */
  607. !                        temp = x;
  608. !                        temp2 = y;
  609. !                        y = ylow;
  610. !                        x = yhigh;
  611. !                        ylow = temp;
  612. !                        yhigh = temp2;
  613. !                        break;
  614. !                    }
  615. !                    case 23:{    /* s4321 */
  616. !                        temp = x;
  617. !                        x    = yhigh;
  618. !                        yhigh = temp;
  619. !                        temp = y;
  620. !                        y    = ylow;
  621. !                        ylow = temp;
  622. !                        break;
  623. !                    }
  624.                  }
  625. +              
  626.                  datum++;
  627. !                
  628.                  store2d_point(this_plot, i++, x, y, ylow, yhigh);
  629.                  break;
  630.               }
  631. ***************
  632. *** 1343,1348 ****
  633. --- 1627,1633 ----
  634.             printf("Plot title: '%s'\n", this_plot->title);
  635.             printf("Line type %d\n", this_plot->line_type);
  636.             printf("Point type %d\n", this_plot->point_type);
  637. +           printf("ErrorBar type %d\n", this_plot->errorbar_type);
  638.             printf("max points %d\n", this_plot->p_max);
  639.             printf("current points %d\n", this_plot->p_count);
  640.             printf("\n");
  641. ***************
  642. *** 1437,1443 ****
  643.   register double x, xdiff, temp;
  644.   static struct value a;
  645.   BOOLEAN ltmp, some_data_files = FALSE;
  646. ! int plot_num, line_num, point_num, xparam=0;
  647.   char *xtitle;
  648.   void parametric_fixup();
  649.   
  650. --- 1722,1728 ----
  651.   register double x, xdiff, temp;
  652.   static struct value a;
  653.   BOOLEAN ltmp, some_data_files = FALSE;
  654. ! int plot_num, line_num, point_num, errorbar_num=0, xparam=0;
  655.   char *xtitle;
  656.   void parametric_fixup();
  657.   
  658. ***************
  659. *** 1452,1457 ****
  660. --- 1737,1743 ----
  661.       plot_num = 0;
  662.       line_num = 0;     /* default line type */
  663.       point_num = 0;    /* default point type */
  664. +     errorbar_num = 0;    /* default errorbar type */
  665.   
  666.       xtitle = NULL;
  667.   
  668. ***************
  669. *** 1538,1543 ****
  670. --- 1824,1830 ----
  671.     
  672.                 this_plot->line_type = line_num;
  673.               this_plot->point_type = point_num;
  674. +             this_plot->errorbar_type = errorbar_num;
  675.   
  676.               if (almost_equals(c_token,"w$ith")) {
  677.                   if (parametric && xparam) 
  678. ***************
  679. *** 1554,1559 ****
  680. --- 1841,1850 ----
  681.                   struct value t;
  682.                   this_plot->point_type = (int)real(const_express(&t))-1;
  683.               }
  684. +             if ( !equals(c_token,",") && !END_OF_COMMAND ) {
  685. +                 struct value t;
  686. +                 this_plot->errorbar_type = (int)real(const_express(&t));
  687. +             }
  688.               if ( (this_plot->plot_style == POINTS) ||
  689.                    (this_plot->plot_style == LINESPOINTS) ||
  690.                    (this_plot->plot_style == ERRORBARS) )
  691. ***************
  692. *** 1726,1731 ****
  693. --- 2017,2026 ----
  694.               }
  695.   
  696.               /* line and point types were handled above */
  697. +             if ( !equals(c_token,",") && !END_OF_COMMAND ) {
  698. +                 struct value t;
  699. +                 (void)real(const_express(&t));
  700. +             }
  701.               if ( !equals(c_token,",") && !END_OF_COMMAND ) {
  702.                   struct value t;
  703.                   (void)real(const_express(&t));
  704. Common subdirectories: gnuplot/demo and gnuplot3_26/demo
  705. Common subdirectories: gnuplot/docs and gnuplot3_26/docs
  706. diff -rc gnuplot/graph3d.c gnuplot3_26/graph3d.c
  707. *** gnuplot/graph3d.c    Wed Mar 25 07:59:40 1992
  708. --- gnuplot3_26/graph3d.c    Thu Apr  9 20:59:21 1992
  709. ***************
  710. *** 923,928 ****
  711. --- 923,958 ----
  712.                          y+ytop+(t->v_char), title);
  713.       }
  714.   
  715. + /* PLACE TOP TITLE */
  716. +     if (*top_title != 0) {
  717. +         int x, y;
  718. +         x = top_title_xoffset * t->h_char;
  719. +         y = top_title_yoffset * t->v_char;
  720. +         if ((*t->justify_text)(CENTRE)) 
  721. +             (*t->put_text)(x+(xleft+xright)/2, 
  722. +                        y+ytop+2*(t->v_char), top_title);
  723. +         else
  724. +             (*t->put_text)(x+(xleft+xright)/2 - strlen(top_title)*(t->h_char)/2,
  725. +                        y+ytop+2*(t->v_char), top_title);
  726. +     }
  727. + /* PLACE BOTTOM TITLE */
  728. +     if (*bottom_title != 0) {
  729. +         int x, y;
  730. +         x = bottom_title_xoffset * t->h_char;
  731. +         y = bottom_title_yoffset * t->v_char;
  732. +         if ((*t->justify_text)(CENTRE)) 
  733. +             (*t->put_text)(x+(xleft+xright)/2, 
  734. +                        y+ybot-2*(t->v_char), bottom_title);
  735. +         else
  736. +             (*t->put_text)(x+(xleft+xright)/2 - strlen(bottom_title)*(t->h_char)/2,
  737. +                        y+ybot-2*(t->v_char), bottom_title);
  738. +     }
  739.   /* PLACE TIMEDATE */
  740.       if (timedate) {
  741.           int x, y;
  742. diff -rc gnuplot/graphics.c gnuplot3_26/graphics.c
  743. *** gnuplot/graphics.c    Wed Mar 25 07:59:41 1992
  744. --- gnuplot3_26/graphics.c    Thu Apr  9 20:59:22 1992
  745. ***************
  746. *** 46,51 ****
  747. --- 46,52 ----
  748.   #include "setshow.h"
  749.   
  750.   extern char *strcpy(),*strncpy(),*strcat(),*ctime();
  751. + extern int print_points();
  752.   char *tdate;
  753.   #ifdef AMIGA_AC_5
  754.   time_t dated;
  755. ***************
  756. *** 60,65 ****
  757. --- 61,67 ----
  758.   void plot_impulses();
  759.   void plot_lines();
  760.   void plot_points();
  761. + void plot_tics();
  762.   void plot_dots();
  763.   void plot_bars();
  764.   void edge_intersect();
  765. ***************
  766. *** 66,72 ****
  767.   BOOLEAN two_edge_intersect();
  768.   
  769.   /* for plotting error bars */
  770. ! #define ERRORBARTIC (t->h_tic/2) /* half the width of error bar tic mark */
  771.   
  772.   #ifndef max        /* Lattice C has max() in math.h, but shouldn't! */
  773.   #define max(a,b) ((a > b) ? a : b)
  774. --- 68,74 ----
  775.   BOOLEAN two_edge_intersect();
  776.   
  777.   /* for plotting error bars */
  778. ! #define ERRORBARTIC (t->h_tic/4) /* half the width of error bar tic mark */
  779.   
  780.   #ifndef max        /* Lattice C has max() in math.h, but shouldn't! */
  781.   #define max(a,b) ((a > b) ? a : b)
  782. ***************
  783. *** 458,463 ****
  784. --- 460,497 ----
  785.       }
  786.   
  787.   
  788. + /* PLACE TOP TITLE */
  789. +     if (*top_title != NULL) {
  790. +         int x, y;
  791. +         x = top_title_xoffset * t->h_char;
  792. +         y = top_title_yoffset * t->v_char;
  793. +             if ((*t->justify_text)(CENTRE))
  794. +             (*t->put_text)(x+(xleft+xright)/2,
  795. +                        y+ytop+2*(t->v_char), top_title);
  796. +             else
  797. +             (*t->put_text)(x+(xleft+xright)/2 - strlen(top_title)*(t->h_char)/2,
  798. +                        y+ytop+2*(t->v_char), top_title);
  799. +     }
  800. + /* PLACE BOTTOM TITLE */
  801. +     if (*bottom_title != NULL) {
  802. +         int x, y;
  803. +         x = bottom_title_xoffset * t->h_char;
  804. +         y = bottom_title_yoffset * t->v_char;
  805. +             if ((*t->justify_text)(CENTRE))
  806. +             (*t->put_text)(x+(xleft+xright)/2,
  807. +                        y+ybot-3*(t->v_char), bottom_title);
  808. +             else
  809. +             (*t->put_text)(x+(xleft+xright)/2 - strlen(bottom_title)*(t->h_char)/2,
  810. +                        y+ybot-3*(t->v_char), bottom_title);
  811. +     }
  812.   /* PLACE TIMEDATE */
  813.       if (timedate) {
  814.           int x, y;
  815. ***************
  816. *** 606,622 ****
  817.                     (*t->point)(xl+2*(t->h_char),yl,
  818.                               this_plot->point_type);
  819.                  }
  820. -                plot_points(this_plot);
  821.   
  822.                  /* for functions, just like POINTS */
  823.                  if (this_plot->plot_type == DATA) {
  824.                     if (key != 0) {
  825.                        (*t->move)(xl+(t->h_char),yl);
  826.                        (*t->vector)(xl+4*(t->h_char),yl);
  827.                        (*t->move)(xl+(t->h_char),yl+ERRORBARTIC);
  828.                        (*t->vector)(xl+(t->h_char),yl-ERRORBARTIC);
  829.                        (*t->move)(xl+4*(t->h_char),yl+ERRORBARTIC);
  830.                        (*t->vector)(xl+4*(t->h_char),yl-ERRORBARTIC);
  831.                     }
  832.                     plot_bars(this_plot);
  833.                  }
  834. --- 640,665 ----
  835.                     (*t->point)(xl+2*(t->h_char),yl,
  836.                               this_plot->point_type);
  837.                  }
  838.   
  839. +                 if( (this_plot->errorbar_type) == 0) {
  840. +                     plot_points(this_plot);
  841. +                 } else {
  842. +                     plot_tics(this_plot);
  843. +                 }
  844. +   
  845.                  /* for functions, just like POINTS */
  846.                  if (this_plot->plot_type == DATA) {
  847.                     if (key != 0) {
  848.                        (*t->move)(xl+(t->h_char),yl);
  849.                        (*t->vector)(xl+4*(t->h_char),yl);
  850. +                      (*t->point)(xl+2*(t->h_char),yl,
  851. +                             this_plot->point_type);
  852. +                      /*
  853.                        (*t->move)(xl+(t->h_char),yl+ERRORBARTIC);
  854.                        (*t->vector)(xl+(t->h_char),yl-ERRORBARTIC);
  855.                        (*t->move)(xl+4*(t->h_char),yl+ERRORBARTIC);
  856.                        (*t->vector)(xl+4*(t->h_char),yl-ERRORBARTIC);
  857. +                      */
  858.                     }
  859.                     plot_bars(this_plot);
  860.                  }
  861. ***************
  862. *** 801,810 ****
  863.          /* by here everything has been mapped */
  864.          (*t->move)(xM, ylowM);
  865.          (*t->vector)(xM, yhighM); /* draw the main bar */
  866. !        (*t->move)(xM-tic, ylowM); /* draw the bottom tic */
  867. !        (*t->vector)(xM+tic, ylowM);
  868. !        (*t->move)(xM-tic, yhighM); /* draw the top tic */
  869. !        (*t->vector)(xM+tic, yhighM);
  870.       }
  871.   }
  872.   
  873. --- 844,855 ----
  874.          /* by here everything has been mapped */
  875.          (*t->move)(xM, ylowM);
  876.          (*t->vector)(xM, yhighM); /* draw the main bar */
  877. !         if( plot->errorbar_type ==0 ) {/* add extra tics for errorbar_types */
  878. !             (*t->move)(xM-tic, ylowM); /* draw the bottom tic */
  879. !             (*t->vector)(xM+tic, ylowM);
  880. !             (*t->move)(xM-tic, yhighM); /* draw the top tic */
  881. !             (*t->vector)(xM+tic, yhighM); 
  882. !         }
  883.       }
  884.   }
  885.   
  886. ***************
  887. *** 852,857 ****
  888. --- 897,933 ----
  889.          }
  890.       }
  891.   }
  892. + /* plot_tics:
  893. +  * Plot the curves in TICS style
  894. +  */
  895. + void
  896. + plot_tics(plot)
  897. +     struct curve_points *plot;
  898. + {
  899. +     struct termentry *t = &term_tbl[term];
  900. +     int i;
  901. +     int x,y;
  902. +     int tic = ERRORBARTIC;
  903. +     for (i = 0; i < plot->p_count; i++) {
  904. +        if (plot->points[i].type == INRANGE) {
  905. +           x = map_x(plot->points[i].x);
  906. +           y = map_y(plot->points[i].y);
  907. +           if( plot->errorbar_type == 1) {
  908. +               (*t->move)(x-tic, y); /* draw the left tic */
  909. +               (*t->vector)(x, y);
  910. +           } else if (plot->errorbar_type == 2) {
  911. +               (*t->move)(x, y); /* draw the right tic */
  912. +               (*t->vector)(x+tic, y);
  913. +           } else if (plot->errorbar_type == 3) {
  914. +               (*t->move)(x-tic, y); /* draw the center tic */
  915. +               (*t->vector)(x+tic, y);
  916. +           }
  917. +        }
  918. +     }
  919. + }
  920.   
  921.   /* single edge intersection algorithm */
  922.   /* Given two points, one inside and one outside the plot, return
  923. diff -rc gnuplot/misc.c gnuplot3_26/misc.c
  924. *** gnuplot/misc.c    Wed Mar 25 07:59:52 1992
  925. --- gnuplot3_26/misc.c    Thu Apr  9 21:00:02 1992
  926. ***************
  927. *** 502,507 ****
  928. --- 502,508 ----
  929.           log_x ? 'x' : ' ', log_y ? 'y' : ' ');
  930.       if (log_z) fprintf(fp,"set logscale z\n");
  931.       fprintf(fp,"set offsets %g, %g, %g, %g\n",loff,roff,toff,boff);
  932. +     fprintf(fp,"set %stime\n", (timedate)? "" : "no");
  933.       fprintf(fp,"set %spolar\n", (polar)? "" : "no");
  934.       fprintf(fp,"set angles %s\n", (angles_format == ANGLES_RADIANS)?
  935.                           "radians" : "degrees");
  936. ***************
  937. *** 552,557 ****
  938. --- 553,560 ----
  939.       save_tics(fp, ytics, 'y', &yticdef);
  940.       save_tics(fp, ztics, 'z', &zticdef);
  941.       fprintf(fp,"set title \"%s\" %d,%d\n",title,title_xoffset,title_yoffset);
  942. +     fprintf(fp,"set top_title \"%s\" %d,%d\n",top_title,top_title_xoffset,top_title_yoffset);
  943. +     fprintf(fp,"set bottom_title \"%s\" %d,%d\n",bottom_title,bottom_title_xoffset,bottom_title_yoffset);
  944.           if (timedate)
  945.           fprintf(fp,"set time %d,%d\n",time_xoffset,time_yoffset);
  946.       else
  947. diff -rc gnuplot/plot.h gnuplot3_26/plot.h
  948. *** gnuplot/plot.h    Wed Mar 25 07:59:55 1992
  949. --- gnuplot3_26/plot.h    Thu Apr  9 21:17:26 1992
  950. ***************
  951. *** 164,171 ****
  952.   
  953.   #else /* vms */
  954.   
  955.   #define is_comment(c) ((c) == '#')
  956.   #define is_system(c) ((c) == '!')
  957.   
  958.   
  959. --- 164,174 ----
  960.   
  961.   #else /* vms */
  962.   
  963. ! #ifdef MSDOS
  964. ! #define is_comment(c) ((c) == '\#')
  965. ! #else
  966.   #define is_comment(c) ((c) == '#')
  967. + #endif /* MSDOS*/
  968.   #define is_system(c) ((c) == '!')
  969.   
  970.   
  971. ***************
  972. *** 358,363 ****
  973. --- 361,367 ----
  974.       char *title;
  975.       int line_type;
  976.       int point_type;
  977. +     int errorbar_type;
  978.        int p_max;                    /* how many points are allocated */
  979.       int p_count;                    /* count of points in points */
  980.       struct coordinate *points;
  981. diff -rc gnuplot/setshow.c gnuplot3_26/setshow.c
  982. *** gnuplot/setshow.c    Wed Mar 25 07:59:59 1992
  983. --- gnuplot3_26/setshow.c    Thu Apr  9 21:00:03 1992
  984. ***************
  985. *** 100,105 ****
  986. --- 100,107 ----
  987.   int            term        = 0;        /* unknown term is 0 */
  988.   char            term_options[MAX_ID_LEN+1] = "";
  989.   char            title[MAX_LINE_LEN+1] = "";
  990. + char            top_title[MAX_LINE_LEN+1] = "";
  991. + char            bottom_title[MAX_LINE_LEN+1] = "";
  992.   char            xlabel[MAX_LINE_LEN+1] = "";
  993.   char            ylabel[MAX_LINE_LEN+1] = "";
  994.   char            zlabel[MAX_LINE_LEN+1] = "";
  995. ***************
  996. *** 107,112 ****
  997. --- 109,118 ----
  998.   int            time_yoffset    = 0;
  999.   int            title_xoffset    = 0;
  1000.   int            title_yoffset    = 0;
  1001. + int            top_title_xoffset    = 0;
  1002. + int            top_title_yoffset    = 0;
  1003. + int            bottom_title_xoffset    = 0;
  1004. + int            bottom_title_yoffset    = 0;
  1005.   int            xlabel_xoffset    = 0;
  1006.   int            xlabel_yoffset    = 0;
  1007.   int            ylabel_xoffset    = 0;
  1008. ***************
  1009. *** 189,194 ****
  1010. --- 195,201 ----
  1011.   static void show_style(), show_range(), show_zero(), show_border();
  1012.   static void show_offsets(), show_output(), show_samples(), show_isosamples();
  1013.   static void show_view(), show_size(), show_title(), show_xlabel();
  1014. + static void show_bottom_title(), show_top_title();
  1015.   static void show_angles();
  1016.   static void show_ylabel(), show_zlabel(), show_xzeroaxis(), show_yzeroaxis();
  1017.   static void show_label(), show_arrow(), show_grid(), show_key();
  1018. ***************
  1019. *** 218,223 ****
  1020. --- 225,231 ----
  1021.       'offsets', 'output', '{no}parametric', '{no}polar', 'rrange', \n\
  1022.       'samples', 'size', '{no}surface', 'terminal', 'tics', 'ticslevel', \n\
  1023.       '{no}time', 'title', 'trange', 'urange', 'view', 'vrange', 'xlabel', \n\
  1024. +      'top_title','bottom_title',  \n\
  1025.       'xrange', '{no}xtics', '{no}xzeroaxis', 'ylabel', 'yrange', \n\
  1026.       '{no}ytics', '{no}yzeroaxis', 'zero', '{no}zeroaxis', 'zlabel', \n\
  1027.       'zrange', '{no}ztics'", c_token);
  1028. ***************
  1029. *** 587,592 ****
  1030. --- 595,606 ----
  1031.       else if (almost_equals(c_token,"tit$le")) {
  1032.           set_xyzlabel(title,&title_xoffset,&title_yoffset);
  1033.       }
  1034. +     else if (almost_equals(c_token,"top$_title")) {
  1035. +         set_xyzlabel(top_title,&top_title_xoffset,&top_title_yoffset);
  1036. +     }
  1037. +     else if (almost_equals(c_token,"bot$tom_title")) {
  1038. +         set_xyzlabel(bottom_title,&bottom_title_xoffset,&bottom_title_yoffset);
  1039. +     }
  1040.       else if (almost_equals(c_token,"xl$abel")) {
  1041.           set_xyzlabel(xlabel,&xlabel_xoffset,&xlabel_yoffset);
  1042.       }
  1043. ***************
  1044. *** 1774,1779 ****
  1045. --- 1788,1794 ----
  1046.       'offsets', 'output', 'plot', 'parametric', 'polar', 'rrange', \n\
  1047.       'samples', 'isosamples', 'view', 'size', 'terminal', 'tics', \n\
  1048.       'ticslevel', 'time', 'title', 'trange', 'urange', 'vrange', \n\
  1049. +      'top_title','bottom_title',  \n\
  1050.       'variables', 'version', 'xlabel', 'xrange', 'xtics', 'xzeroaxis', \n\
  1051.       'ylabel', 'yrange', 'ytics', 'yzeroaxis', 'zlabel', 'zrange', \n\
  1052.       'ztics', 'zero', 'zeroaxis'", c_token);
  1053. ***************
  1054. *** 1877,1882 ****
  1055. --- 1892,1907 ----
  1056.           show_title();
  1057.           c_token++;
  1058.       }
  1059. +     else if (almost_equals(c_token,"top$_title")) {
  1060. +         (void) putc('\n',stderr);
  1061. +         show_top_title();
  1062. +         c_token++;
  1063. +     }
  1064. +     else if (almost_equals(c_token,"bot$tom_title")) {
  1065. +         (void) putc('\n',stderr);
  1066. +         show_bottom_title();
  1067. +         c_token++;
  1068. +     }
  1069.       else if (almost_equals(c_token,"xl$abel")) {
  1070.           (void) putc('\n',stderr);
  1071.           show_xlabel();
  1072. ***************
  1073. *** 2111,2116 ****
  1074. --- 2136,2143 ----
  1075.           show_range('y',ymin,ymax);
  1076.           show_range('z',zmin,zmax);
  1077.           show_title();
  1078. +         show_top_title();
  1079. +         show_bottom_title();
  1080.           show_xlabel();
  1081.           show_ylabel();
  1082.           show_zlabel();
  1083. ***************
  1084. *** 2217,2222 ****
  1085. --- 2244,2263 ----
  1086.   {
  1087.       fprintf(stderr,"\ttitle is \"%s\", offset at %d, %d\n",
  1088.           title,title_xoffset,title_yoffset);
  1089. + }
  1090. + static void
  1091. + show_top_title()
  1092. + {
  1093. +     fprintf(stderr,"\ttop_title is \"%s\", offset at %d, %d\n",
  1094. +         top_title,top_title_xoffset,top_title_yoffset);
  1095. + }
  1096. + static void
  1097. + show_bottom_title()
  1098. + {
  1099. +     fprintf(stderr,"\tbottom_title is \"%s\", offset at %d, %d\n",
  1100. +         bottom_title,bottom_title_xoffset,bottom_title_yoffset);
  1101.   }
  1102.   
  1103.   static void
  1104. diff -rc gnuplot/setshow.h gnuplot3_26/setshow.h
  1105. *** gnuplot/setshow.h    Wed Mar 25 07:59:59 1992
  1106. --- gnuplot3_26/setshow.h    Thu Apr  9 21:00:03 1992
  1107. ***************
  1108. *** 88,102 ****
  1109. --- 88,118 ----
  1110.   extern float            surface_scale;
  1111.   extern float            surface_zscale;
  1112.   extern int            term; /* unknown term is 0 */
  1113. + #ifdef __TURBOC__
  1114. + extern char            *term_options;
  1115. + extern char            *title;
  1116. + extern char            *top_title;
  1117. + extern char            *bottom_title;
  1118. + extern char            *xlabel;
  1119. + extern char            *ylabel;
  1120. + extern char            *zlabel;
  1121. + #else
  1122.   extern char            term_options[];
  1123.   extern char            title[];
  1124. + extern char            top_title[];
  1125. + extern char            bottom_title[];
  1126.   extern char            xlabel[];
  1127.   extern char            ylabel[];
  1128.   extern char            zlabel[];
  1129. + #endif
  1130.   extern int            time_xoffset;
  1131.   extern int            time_yoffset;
  1132.   extern int            title_xoffset;
  1133.   extern int            title_yoffset;
  1134. + extern int            top_title_xoffset;
  1135. + extern int            top_title_yoffset;
  1136. + extern int            bottom_title_xoffset;
  1137. + extern int            bottom_title_yoffset;
  1138.   extern int            xlabel_xoffset;
  1139.   extern int            xlabel_yoffset;
  1140.   extern int            ylabel_xoffset;
  1141. Common subdirectories: gnuplot/term and gnuplot3_26/term
  1142. Only in gnuplot3_26/demo: RCS
  1143. diff -rc gnuplot/demo/errorbar.demo gnuplot3_26/demo/errorbar.demo
  1144. *** gnuplot/demo/errorbar.demo    Wed Mar 25 08:00:13 1992
  1145. --- gnuplot3_26/demo/errorbar.demo    Thu Apr  9 21:00:03 1992
  1146. ***************
  1147. *** 26,33 ****
  1148. --- 26,77 ----
  1149.   
  1150.   set title "Plot data file twice to get lines and errorbars"
  1151.   plot [-3:65] [6:14] "err.dat" with lines, "err.dat" using 1:2:4:3 with errorbars
  1152. + pause -1 "Hit return to continue"
  1153.   
  1154. + set title "T-BOND FUTURES"
  1155. + set grid
  1156. + set yrange [8500:9200]
  1157. + set xrange [1:530]
  1158. + set nologscale y
  1159. + set xlabel "High Low Closing Prices"
  1160. + set ylabel "Price in Dollars"
  1161. + plot "futures.dat" using 1:6:4:5 with errorbar 1 1 2
  1162. + pause -1 "Hit Return to Continue"
  1163. + set xlabel "High Low Opening Prices"
  1164. + plot "futures.dat" using 1:3:4:5 with errorbar 1 1 1
  1165. + pause -1 "Hit Return to Continue"
  1166. + set xlabel "High Low Opening Closing Prices"
  1167. + plot "futures.dat" using 1:6:4:5 title "Open" with errorbar 1 1 2,\
  1168. + "futures.dat"  using 1:3:4:5 title "Close" with errorbar 1 1 1
  1169. + pause -1 "Hit Return to Continue"
  1170. + set xlabel "High Low Opening Prices with Center Tics"
  1171. + plot "futures.dat" using 1:3:4:5 with errorbar 1 1 3,\
  1172. +      "futures.dat" using 1:6 with lines
  1173. + pause -1 "Hit Return to Continue"
  1174. + set xlabel "High Low Prices without Center Tics"
  1175. + plot "futures.dat" using 1:3:4:5 with errorbar 1 1 4
  1176. + pause -1 "Hit Return to Continue"
  1177. + set autoscale y
  1178. + set logscale y
  1179. + set xlabel  ""
  1180. + set ylabel "Contract Volume"
  1181. + set yrange [10:1e5]
  1182. + plot "futures.dat" using 1:7 title "Daily Volume" with impulses,\
  1183. + "futures.dat" using 1:8 title "Open Interest" with dots
  1184.   set title ""
  1185. + set ylabel ""
  1186.   set autoscale
  1187.   
  1188.   pause -1 "Hit return to continue"
  1189. Only in gnuplot3_26/demo: errorbar.demo.orig
  1190. Only in gnuplot3_26/demo: futures.dat
  1191. diff -rc gnuplot/demo/hidden.demo gnuplot3_26/demo/hidden.demo
  1192. *** gnuplot/demo/hidden.demo    Wed Mar 25 07:59:14 1992
  1193. --- gnuplot3_26/demo/hidden.demo    Tue Mar 24 22:42:25 1992
  1194. ***************
  1195. *** 1,7 ****
  1196.   #
  1197. ! # $Id$
  1198. ! #
  1199. ! # $Log$
  1200.   #
  1201.   set samples 20
  1202.   set isosamples 20
  1203. --- 1,5 ----
  1204.   #
  1205. ! # $Id: hidden.demo,v 3.26 92/03/24 22:32:39 woo Exp Locker: woo $
  1206.   #
  1207.   set samples 20
  1208.   set isosamples 20
  1209. Only in gnuplot3_26/docs: RCS
  1210. Only in gnuplot3_26/docs: doc2gih
  1211. diff -rc gnuplot/docs/gnuplot.doc gnuplot3_26/docs/gnuplot.doc
  1212. *** gnuplot/docs/gnuplot.doc    Wed Mar 25 08:00:28 1992
  1213. --- gnuplot3_26/docs/gnuplot.doc    Thu Apr  9 21:00:04 1992
  1214. ***************
  1215. *** 773,781 ****
  1216.    <ycol>, and <zcol> can be entered as constants or expressions.
  1217.   
  1218.    If errorbars (see also `plot errorbars`) are used for `plot`s,
  1219. !  ydelta (for example, a +/- error) should be provided as the third
  1220. !  column, or ylow and yhigh as third and fourth columns.  These columns
  1221. !  must follow the x and y columns.
  1222.   
  1223.    Scanf strings override any <xcol>:<ycol>(:<zcol>) choices, except for
  1224.    ordering of input, e.g.,
  1225. --- 773,781 ----
  1226.    <ycol>, and <zcol> can be entered as constants or expressions.
  1227.   
  1228.    If errorbars (see also `plot errorbars`) are used for `plot`s,
  1229. !  ydelta (for example, a +/- error) is assumed if three columns are present.
  1230. !  If four columns are present, the data is assumed to consist of ylow and
  1231. !  yhigh.  There is no restriction on the order of the data.
  1232.   
  1233.    Scanf strings override any <xcol>:<ycol>(:<zcol>) choices, except for
  1234.    ordering of input, e.g.,
  1235. ***************
  1236. *** 825,838 ****
  1237.   
  1238.    In the default situation, GNUPLOT expects to see three or four
  1239.    numbers on each line of the data file, either (x, y, ydelta) or 
  1240. !  (x, y, ylow, yhigh). The x coordinate must be specified. The order
  1241. !  of the numbers must be exactly as given above. Data files in this
  1242. !  format can easily be plotted with error bars:
  1243.   
  1244.            plot "data.dat" with errorbars
  1245.   
  1246. !  The error bar is a vertical line plotted from (x, ylow) to (x,
  1247. !  yhigh). If ydelta is specified instead of ylow and yhigh, 
  1248.    ylow=y-ydelta and yhigh=y+ydelta are derived. If there
  1249.    are only two numbers on the line, yhigh and ylow are both set to
  1250.    y. To get lines plotted between the data points, `plot` the
  1251. --- 825,838 ----
  1252.   
  1253.    In the default situation, GNUPLOT expects to see three or four
  1254.    numbers on each line of the data file, either (x, y, ydelta) or 
  1255. !  (x, y, ylow, yhigh). The x coordinate must be specified. 
  1256. !  Data files in this format can easily be plotted with error bars:
  1257.   
  1258.            plot "data.dat" with errorbars
  1259.   
  1260. !  The default error bar is a vertical line plotted from (x, ylow) to (x,
  1261. !  yhigh) with tic marks at the top and bottom and a point of the current
  1262. !  style at (x,y). If ydelta is specified instead of ylow and yhigh, 
  1263.    ylow=y-ydelta and yhigh=y+ydelta are derived. If there
  1264.    are only two numbers on the line, yhigh and ylow are both set to
  1265.    y. To get lines plotted between the data points, `plot` the
  1266. ***************
  1267. *** 843,850 ****
  1268.   
  1269.    The `using` option may be used to specify how columns of the data file
  1270.    are to be assigned to x, y, ydelta, ylow, and yhigh. The x column must
  1271. !  be provided and both the x and y columns must appear before the
  1272. !  errorbar columns. If three column numbers are given, they are x, y,
  1273.    and ydelta. If four columns are given, they are x, y, ylow, and
  1274.    yhigh.
  1275.   
  1276. --- 843,849 ----
  1277.   
  1278.    The `using` option may be used to specify how columns of the data file
  1279.    are to be assigned to x, y, ydelta, ylow, and yhigh. The x column must
  1280. !  be provided. If three column numbers are given, they are x, y,
  1281.    and ydelta. If four columns are given, they are x, y, ylow, and
  1282.    yhigh.
  1283.   
  1284. ***************
  1285. *** 853,864 ****
  1286.            plot "data.dat" using 1:2:3:4 with errorbars
  1287.            plot "data.dat" using 3:2:6 with errorbars
  1288.            plot "data.dat" using 3:4:8:7 with errorbars
  1289.    
  1290.    The first example reads, x, y, ylow, and yhigh, from columns 1, 2, 3,
  1291.    and 4. This is equivalent to the default.  The second example reads x
  1292.    from the third column, y from second and ydelta from the sixth column.
  1293.    The third example reads x from the third column, y from the fourth,
  1294. !  ylow from the eighth, and yhigh from seventh columns.
  1295.    
  1296.    See also `plot using` and `plot style`.
  1297.   3 parametric
  1298. --- 852,880 ----
  1299.            plot "data.dat" using 1:2:3:4 with errorbars
  1300.            plot "data.dat" using 3:2:6 with errorbars
  1301.            plot "data.dat" using 3:4:8:7 with errorbars
  1302. +          plot "data.dat" using 8:7:3:4 with errorbars 1 1 1
  1303. +          plot "data.dat" using 3:7:8:4 with errorbars 1 2 2
  1304. +          plot "data.dat" using 1:8:4 with errorbars 1 5 3
  1305. +      
  1306.    
  1307.    The first example reads, x, y, ylow, and yhigh, from columns 1, 2, 3,
  1308.    and 4. This is equivalent to the default.  The second example reads x
  1309.    from the third column, y from second and ydelta from the sixth column.
  1310.    The third example reads x from the third column, y from the fourth,
  1311. !  ylow from the eighth, and yhigh from seventh columns.  The fourth
  1312. !  example reads x from the eigth column, y from the seventh, ylow from
  1313. !  the third, yhigh from the fourth and uses line style 1, point style 1
  1314. !  and errorbar style 1, which consists of left tic marks at (x,y) and 
  1315. !  no tic marks at the top and bottom of the errorbar.  The fifth example
  1316. !  reads x from the third column, y from the seventh column, ylow from the
  1317. !  eigth column, yhigh from the fourth column and uses line style 1, point 
  1318. !  style 2 and errorbar style 2 which consists of right tic marks at (x,y)
  1319. !  and no tic marks at the top and bottom of the errorbar.  These two
  1320. !  style were chosen for financial data.  The last example reads x from 
  1321. !  the first column, y from the eigth column, ydelta from the fourth column
  1322. !  and uses line style 1, point style 5 and errorbar style 3 which consists
  1323. !  of center tic marks at (x,y) and no tic marks at the top and bottom of
  1324. !  the errorbar.
  1325.    
  1326.    See also `plot using` and `plot style`.
  1327.   3 parametric
  1328. ***************
  1329. *** 957,966 ****
  1330.    is treated like `points` for `splot`s and function `plot`s. For data
  1331.    `plot`s, `errorbars` is like `points`, except that a vertical error 
  1332.    bar is also drawn: for each point (x,y), a line is drawn from
  1333. !  (x,ylow) to (x,yhigh). A tic mark is placed at the ends of the error
  1334. !  bar. The ylow and yhigh values are read from the data file's columns,
  1335. !  as specified with the `using` option to plot. See `plot errorbars` for
  1336. !  more information.
  1337.    
  1338.    Default styles are chosen with the `set function style` and
  1339.    `set data style` commands.
  1340. --- 973,982 ----
  1341.    is treated like `points` for `splot`s and function `plot`s. For data
  1342.    `plot`s, `errorbars` is like `points`, except that a vertical error 
  1343.    bar is also drawn: for each point (x,y), a line is drawn from
  1344. !  (x,ylow) to (x,yhigh). The default errorbar style has a tic mark 
  1345. !  placed at the ends of the error bar. The ylow and yhigh values
  1346. !  are read from the data file's columns, as specified with the 
  1347. !  `using` option to plot. See `plot errorbars` for more information.
  1348.    
  1349.    Default styles are chosen with the `set function style` and
  1350.    `set data style` commands.
  1351. ***************
  1352. *** 974,984 ****
  1353.    plotted with points.
  1354.    
  1355.    If desired, the style and (optionally) the line type and point type
  1356. !  used for a curve can be specified.
  1357.   
  1358.    Syntax:
  1359.    
  1360. !          with <style> {<linetype> {<pointtype>}}
  1361.    
  1362.    where <style> is either `lines`, `points`, `linespoints`, `impulses`,
  1363.    `dots`, or `errorbars`. The <linetype> and <pointtype> are positive
  1364. --- 990,1001 ----
  1365.    plotted with points.
  1366.    
  1367.    If desired, the style and (optionally) the line type and point type
  1368. !  used for a curve can be specified.  For errorbars, an additional
  1369. !  (optional) errorbar type can be specified.
  1370.   
  1371.    Syntax:
  1372.    
  1373. !          with <style> {<linetype> {<pointtype> {<errorbartype>}}}
  1374.    
  1375.    where <style> is either `lines`, `points`, `linespoints`, `impulses`,
  1376.    `dots`, or `errorbars`. The <linetype> and <pointtype> are positive
  1377. ***************
  1378. *** 1267,1272 ****
  1379. --- 1284,1313 ----
  1380.            set border
  1381.            set noborder
  1382.            show border
  1383. + 3 bottom_title (Ames Local Mod)
  1384. + ?set bottom_title
  1385. + ?show bottom_title
  1386. + ?title
  1387. +  The `set bottom_title` command produces a plot title which will be centered
  1388. +  at the bottom of the plot.  Using the optional x/y screen offsets, the
  1389. +  bottom_title can be arbitrarily placed anywhere on the plot.  
  1390. +  `set bottom_title` with no parameters clears the bottom_title.
  1391. +  
  1392. +  Syntax:
  1393. +           set bottom_title {"title-text"} {x}{,y}
  1394. +           show bottom_title
  1395. +  
  1396. +  Specifying constants x or y as optional offsets for the bottom_title will
  1397. +  move the bottom_title x or y character screen coordinates.  All parameters
  1398. +  are optional; for example:
  1399. +  
  1400. +  set bottom_title ,-1
  1401. +  
  1402. +  will change only the y offset of the bottom_title, moving the bottom_title 
  1403. +  down by roughly the height of one character.
  1404. +  
  1405. +  (The Latex, EEPIC, and Imagen drivers allow \\ in a string to specify
  1406. +  a newline.)
  1407.   3 clip
  1408.   ?set clip
  1409.   ?set noclip
  1410. ***************
  1411. *** 1881,1890 ****
  1412.    treated like `points` for function `plot`s and `splot`s. For data file
  1413.    `plot`s, `errorbars` is like `points`, except that a vertical error
  1414.    bar is also drawn: for each point (x,y), a line is drawn from (x,ylow)
  1415. !  to (x,yhigh). A tic mark is placed at the ends of the error bar. The
  1416. !  ylow and yhigh values are read from the data file's third and fourth
  1417. !  columns, or as specified with the `using` option to plot.  See `plot
  1418. !  errorbars` for more information.
  1419.    
  1420.    Default styles are chosen with the `set function style` and `set
  1421.    data style` commands. See `plot style` for information about how
  1422. --- 1922,1932 ----
  1423.    treated like `points` for function `plot`s and `splot`s. For data file
  1424.    `plot`s, `errorbars` is like `points`, except that a vertical error
  1425.    bar is also drawn: for each point (x,y), a line is drawn from (x,ylow)
  1426. !  to (x,yhigh). The default errorbar type has a tic mark placed 
  1427. !  at the ends of the error bar. The ylow and yhigh values are read
  1428. !  from the data file's third and fourth columns, or as specified
  1429. !  with the `using` option to plot.  See `plot errorbars` for 
  1430. !  more information.
  1431.    
  1432.    Default styles are chosen with the `set function style` and `set
  1433.    data style` commands. See `plot style` for information about how
  1434. ***************
  1435. *** 2170,2175 ****
  1436. --- 2212,2241 ----
  1437.    
  1438.    will change only the y offset of the title, moving the title down by
  1439.    roughly the height of one character.
  1440. +  
  1441. +  (The Latex, EEPIC, and Imagen drivers allow \\ in a string to specify
  1442. +  a newline.)
  1443. + 3 top_title (Ames Local Mod)
  1444. + ?set top_title
  1445. + ?show top_title
  1446. + ?title
  1447. +  The `set top_title` command produces a plot title which will be centered
  1448. +  at the top of the plot.  Using the optional x/y screen offsets, the
  1449. +  top_title can be arbitrarily placed anywhere on the plot.  `set top_title`
  1450. +  with no parameters clears the top_title.
  1451. +  
  1452. +  Syntax:
  1453. +           set top_title {"title-text"} {x}{,y}
  1454. +           show top_title
  1455. +  
  1456. +  Specifying constants x or y as optional offsets for the top_title will
  1457. +  move the top_title x or y character screen coordinates.  All parameters
  1458. +  are optional; for example:
  1459. +  
  1460. +  set top_title ,-1
  1461. +  
  1462. +  will change only the y offset of the top_title, moving the top_title down 
  1463. +  by roughly the height of one character.
  1464.    
  1465.    (The Latex, EEPIC, and Imagen drivers allow \\ in a string to specify
  1466.    a newline.)
  1467. Only in gnuplot3_26/docs: gnuplot.doc.orig
  1468. Only in gnuplot3_26/docs: gnuplot.gih
  1469. Common subdirectories: gnuplot/docs/latextut and gnuplot3_26/docs/latextut
  1470. Only in gnuplot3_26/docs/latextut: RCS
  1471. Only in gnuplot3_26/term: RCS
  1472. diff -rc gnuplot/term/hpgl.trm gnuplot3_26/term/hpgl.trm
  1473. *** gnuplot/term/hpgl.trm    Wed Mar 25 08:00:44 1992
  1474. --- gnuplot3_26/term/hpgl.trm    Tue Apr  7 10:56:06 1992
  1475. ***************
  1476. *** 62,70 ****
  1477.   
  1478.   PCL_PORT_init()
  1479.   {
  1480. !       fputs("\033E\033&l1X\033&l0O\033&2A\033%0B;PW0.15\n",outfile);
  1481. ! /*           1      2       3       4     5     6
  1482. !     1. reset the printer
  1483.       2. one copy
  1484.       3. portrait orientation
  1485.       4. use letter paper
  1486. --- 62,69 ----
  1487.   
  1488.   PCL_PORT_init()
  1489.   {
  1490. !       fputs("\033&l1X\033&l0O\033&2A\033%0B;PW0.15\n",outfile);
  1491. ! /*          2       3       4     5     6
  1492.       2. one copy
  1493.       3. portrait orientation
  1494.       4. use letter paper
  1495. ***************
  1496. *** 75,82 ****
  1497.   
  1498.   PCL_LAND_init()
  1499.   {
  1500. !     fputs("\033E\033&l1X\033&l1O\033%0B;PW0.15\n",outfile);
  1501.   /*
  1502.                    1      2       3       4     5
  1503.       1. reset the printer
  1504.       2. one copy
  1505. --- 74,82 ----
  1506.   
  1507.   PCL_LAND_init()
  1508.   {
  1509. !     fputs("\033&l1X\033&l1O\033%0B;PW0.15\n",outfile);
  1510.   /*
  1511. +     fputs("\033E\033&l1X\033&l1O\033%0B;PW0.15\n",outfile);
  1512.                    1      2       3       4     5
  1513.       1. reset the printer
  1514.       2. one copy
  1515. ***************
  1516. *** 90,96 ****
  1517.   PCL_graphics()
  1518.   {
  1519.       fprintf(outfile,
  1520. !     "\033%0B\nIN;\nSC0,%d,0,%d;\nSR%f,%f;\n",
  1521.           PCL_XMAX,PCL_YMAX,
  1522.           ((double)(PCL_HCHAR)*200/3/PCL_XMAX),
  1523.           ((double)(PCL_VCHAR)*100/2/PCL_YMAX) );
  1524. --- 90,96 ----
  1525.   PCL_graphics()
  1526.   {
  1527.       fprintf(outfile,
  1528. !     "\033%%0B;SC0,%d,0,%d;\nSR%f,%f;\n",
  1529.           PCL_XMAX,PCL_YMAX,
  1530.           ((double)(PCL_HCHAR)*200/3/PCL_XMAX),
  1531.           ((double)(PCL_VCHAR)*100/2/PCL_YMAX) );
  1532. diff -rc gnuplot/term/next.trm gnuplot3_26/term/next.trm
  1533. *** gnuplot/term/next.trm    Wed Mar 25 07:59:14 1992
  1534. --- gnuplot3_26/term/next.trm    Tue Mar 24 22:44:52 1992
  1535. ***************
  1536. *** 1,7 ****
  1537.   /*
  1538. !  * $Id$
  1539. !  *
  1540. !  * $Log$
  1541.    */
  1542.   
  1543.   /* GNUPLOT - next.trm */
  1544. --- 1,5 ----
  1545.   /*
  1546. !  * $Id: next.trm,v 3.26 92/03/24 22:35:18 woo Exp Locker: woo $
  1547.    */
  1548.   
  1549.   /* GNUPLOT - next.trm */
  1550. diff -rc gnuplot/term/pbm.trm gnuplot3_26/term/pbm.trm
  1551. *** gnuplot/term/pbm.trm    Wed Mar 25 07:59:14 1992
  1552. --- gnuplot3_26/term/pbm.trm    Tue Mar 24 22:44:59 1992
  1553. ***************
  1554. *** 1,13 ****
  1555.   /*
  1556. !  * $Id: pbm.trm,v 3.24 1992/02/29 16:23:41 woo Exp woo $
  1557. !  *
  1558. !  * $Log: pbm.trm,v $
  1559. !  * Revision 3.24  1992/02/29  16:23:41  woo
  1560. !  * gnuplot3.2, beta 4
  1561. !  *
  1562. !  * Revision 3.23  1992/02/21  20:18:16  woo
  1563. !  * gnuplot3.2, beta 3
  1564. !  *
  1565.    */
  1566.   
  1567.   /* GNUPLOT - pbm.trm */
  1568. --- 1,5 ----
  1569.   /*
  1570. !  * $Id: pbm.trm,v 3.26 92/03/24 22:35:38 woo Exp Locker: woo $
  1571.    */
  1572.   
  1573.   /* GNUPLOT - pbm.trm */
  1574.